技术漏洞和逻辑漏洞之间的区别
技术漏洞
技术漏洞源自网站的技术内容。这可能会受到所用开发语言,开发实践,所用数据库类型,数据库结构等的影响。
流行的技术漏洞是SQL注入。通过将未处理的请求发送到Web表单或Web参数,可以利用此漏洞。从web应用程序接收到的响应将包含一个错误,例如SQL或ODBC错误,表明表单或参数容易受到SQL注入的攻击。
自动化的Web扫描程序可以在Web应用程序中找到SQL注入,因为可以使用Web应用程序的响应轻松检测SQL注入漏洞。web漏洞扫描器进行预定义的HTTP请求,并分析表明可能存在SQL注入漏洞的错误响应。
由于可以预先定义导致SQL注入的请求,并且可以预测到指示SQL注入漏洞的响应,因此可以使用Web漏洞扫描程序自动检测SQL注入。可以自动检测到的另一个常见技术漏洞是跨站点脚本(XSS)。
实际上,自动检测此类漏洞(包括其所有变体)说起来容易做起来难。诸如Acunetix WVS之类的高级Web漏洞扫描程序要加倍努力,以确保Web安全扫描结果中没有误报。
技术漏洞是错误的编码做法,不安全的编码以及代码本身错误的结果。在使用SQL注入和跨站点脚本的情况下,Web开发人员在将网站访问者提交的输入发送到数据库之前,无法正确处理和清理该输入。因此,网站访问者可以在网站输入中注入SQL语句,并执行该语句以从网站后面的SQL数据库中检索任何数据。
逻辑漏洞
逻辑漏洞是Web应用程序逻辑中的问题,而不是源代码中的问题。逻辑漏洞可能对Web应用程序造成巨大破坏。为了演示一个逻辑漏洞,我将从在线票务系统购买2张音乐会票。选择了我喜欢的乐队,地点和门票数量之后,在输入信用卡详细信息之前,浏览器中的URL显示以下内容:
http://concerts/final.asp?concertID = 5&quantity = 2&price = 200.00
对于自动扫描仪而言,以上内容意味着final.asp接受三个输入参数,并将继续尝试注入所有三个参数,从而自动创建一系列Web攻击列表以检查final.asp是否安全,这可能能够识别出各种技术漏洞如前所述。
但是,在这种情况下,自动扫描仪将无法确定URL中传递的参数的真实含义,在这种情况下,该参数指的是音乐会识别号,所购买的门票数量以及票价。交易。如果我们手动将URL更改为以下内容,该怎么办:
http://concerts/final.asp?concertID = 5&quantity = 2&price = 1.00
Web应用程序将接受新价格的请求吗?它是否仍会运送机票并仅向我的信用卡收取1欧元,还是会拒绝请求?自动扫描程序仍可以进行此类更改并操纵URL,但是将无法确定Web应用程序的逻辑是否存在问题。用户可以以更低的价格获得产品。
人们可能会错误地认为,这种逻辑上的漏洞并不常见。不久前,一家在线广告公司向购买了价值50美元或更多广告的新订户提供价值50美元的免费广告。这个系统在设计上有缺陷。当一个新的订阅者注册时,即使订阅者没有购买任何东西,他或她仍然可以免费获得价值50美元的广告。因此,web应用程序有一个巨大的漏洞,业务损失了很多钱。
逻辑漏洞大概率是在代码编写过程中因为疏忽从而导致逻辑出现问题,攻击者通过该逻辑上的问题从而攻击。技术漏洞是指一个系统存在的弱点或缺陷,系统对特定威胁攻击或危险事件的敏感性,或进行攻击的威胁作用的可能性。漏洞可能来自应用软件或操作系统设计时的缺陷或编码时产生的错误,也可能来自业务在交互处理过程中的设计缺陷或逻辑流程上的不合理之处。